home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nethack.lha / nethack-3.1 / include / extern.h < prev    next >
C/C++ Source or Header  |  1993-01-25  |  54KB  |  1,818 lines

  1. /*    SCCS Id: @(#)extern.h    3.1    93/01/24    */
  2. /* Copyright (c) Steve Creps, 1988.                  */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef EXTERN_H
  6. #define EXTERN_H
  7.  
  8. #define E extern
  9.  
  10. /* ### alloc.c ### */
  11.  
  12. E long *FDECL(alloc, (unsigned int));
  13.  
  14. #if !defined(MAKEDEFS_C) && !defined(LEV_LEX_C)
  15.  
  16. /* ### allmain.c ### */
  17.  
  18. E void NDECL(moveloop);
  19. E void NDECL(stop_occupation);
  20. E void NDECL(display_gamewindows);
  21. E void NDECL(newgame);
  22.  
  23. /* ### amiwbench.c ### */
  24.  
  25. #ifdef AMIGA
  26. E void NDECL(ami_wbench_init);
  27. E void NDECL(ami_wbench_args);
  28. E int FDECL(ami_wbench_getsave, (int));
  29. E void FDECL(ami_wbench_unlink, (char *));
  30. E int FDECL(ami_wbench_iconsize, (char *));
  31. E void FDECL(ami_wbench_iconwrite, (char *));
  32. E int FDECL(ami_wbench_badopt, (const char *));
  33. E void NDECL(ami_wbench_cleanup);
  34. E void FDECL(getlind, (const char *,char *,const char *));
  35. #endif /* AMIGA */
  36.  
  37. /* ### apply.c ### */
  38.  
  39. #ifdef OVERLAY
  40. E int NDECL(dig);
  41. #endif
  42. E int NDECL(doapply);
  43. E int NDECL(holetime);
  44. E void NDECL(dighole);
  45. E int NDECL(dorub);
  46. E int NDECL(dojump);
  47. #ifdef WALKIES
  48. E int NDECL(number_leashed);
  49. E void FDECL(o_unleash, (struct obj *));
  50. E void FDECL(m_unleash, (struct monst *));
  51. E void NDECL(unleash_all);
  52. E boolean NDECL(next_to_u);
  53. E struct obj *FDECL(get_mleash, (struct monst *));
  54. E void FDECL(check_leash, (XCHAR_P,XCHAR_P));
  55. #endif
  56. E boolean FDECL(um_dist, (XCHAR_P,XCHAR_P,XCHAR_P));
  57. E boolean FDECL(snuff_candle, (struct obj *));
  58. E boolean FDECL(snuff_lit, (struct obj *));
  59. E void NDECL(check_lamps);
  60. E void FDECL(use_unicorn_horn, (struct obj *));
  61.  
  62. /* ### artifact.c ### */
  63.  
  64. E void NDECL(init_artifacts);
  65. E void FDECL(save_artifacts, (int));
  66. E void FDECL(restore_artifacts, (int));
  67. E const char *FDECL(artiname, (int));
  68. E struct obj *FDECL(mk_artifact, (struct obj *,ALIGNTYP_P));
  69. E const char *FDECL(artifact_name, (const char *,short *));
  70. E boolean FDECL(exist_artifact, (int,const char *));
  71. E void FDECL(artifact_exists, (struct obj *,const char *,BOOLEAN_P));
  72. E int NDECL(nartifact_exist);
  73. E boolean FDECL(spec_ability, (struct obj *,unsigned));
  74. E boolean FDECL(restrict_name, (struct obj *,const char *));
  75. E boolean FDECL(defends, (int,struct obj *));
  76. E void FDECL(set_artifact_intrinsic, (struct obj *,BOOLEAN_P,long));
  77. E int FDECL(touch_artifact, (struct obj *,struct monst *));
  78. E int FDECL(spec_abon, (struct obj *,struct permonst *));
  79. E int FDECL(spec_dbon, (struct obj *,struct permonst *,int));
  80. E boolean FDECL(artifact_hit, (struct monst *,struct monst *,
  81.                 struct obj *,int *,int));
  82. E int NDECL(doinvoke);
  83.  
  84. /* ### attrib.c ### */
  85.  
  86. E boolean FDECL(adjattrib, (int,int,int));
  87. E void FDECL(change_luck, (SCHAR_P));
  88. E int FDECL(stone_luck, (BOOLEAN_P));
  89. E void FDECL(gainstr, (struct obj *,int));
  90. E void FDECL(losestr, (int));
  91. E void NDECL(restore_attrib);
  92. E void FDECL(exercise, (int,BOOLEAN_P));
  93. E void NDECL(exerchk);
  94. E void FDECL(init_attr, (int));
  95. E void NDECL(redist_attr);
  96. E void FDECL(adjabil, (int,int));
  97. E int NDECL(newhp);
  98. E schar FDECL(acurr, (int));
  99. E schar NDECL(acurrstr);
  100. E void FDECL(adjalign, (int));
  101.  
  102. /* ### ball.c ### */
  103.  
  104. E void NDECL(ballfall);
  105. E void NDECL(placebc);
  106. E void NDECL(unplacebc);
  107. E int NDECL(bc_order);
  108. E void FDECL(set_bc, (int));
  109. E void FDECL(move_bc, (int,int,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  110. E boolean FDECL(drag_ball, (XCHAR_P,XCHAR_P,
  111.                 int *,xchar *,xchar *,xchar *,xchar *));
  112. E void FDECL(drop_ball, (XCHAR_P,XCHAR_P));
  113. E void NDECL(drag_down);
  114.  
  115. /* ### bones.c ### */
  116.  
  117. E void NDECL(savebones);
  118. E int NDECL(getbones);
  119.  
  120. /* ### botl.c ### */
  121.  
  122. E int FDECL(xlev_to_rank, (int));
  123. E int FDECL(title_to_mon, (const char *,int *,int *));
  124. E void NDECL(max_rank_sz);
  125. E const char *FDECL(rank_of, (unsigned,CHAR_P,BOOLEAN_P));
  126. E void NDECL(bot);
  127.  
  128. /* ### cmd.c ### */
  129.  
  130. #ifdef OVERLAY
  131. E int NDECL(doextcmd);
  132. #ifdef POLYSELF
  133. E int NDECL(domonability);
  134. #endif /* POLYSELF */
  135. E int NDECL(doprev_message);
  136. E int NDECL(timed_occupation);
  137. #if defined(WIZARD) || defined(EXPLORE_MODE)
  138. E int NDECL(wiz_attributes);
  139. #endif /* WIZARD */
  140. # ifdef EXPLORE_MODE
  141. E int NDECL(enter_explore_mode);
  142. # endif /* EXPLORE_MODE */
  143. #ifdef WIZARD
  144. E int NDECL(wiz_detect);
  145. E int NDECL(wiz_genesis);
  146. E int NDECL(wiz_identify);
  147. E int NDECL(wiz_level_tele);
  148. E int NDECL(wiz_map);
  149. E int NDECL(wiz_where);
  150. E int NDECL(wiz_wish);
  151. #endif /* WIZARD */
  152. #endif /* OVERLAY */
  153. E void NDECL(reset_occupations);
  154. E void FDECL(set_occupation, (int (*)(void),const char *,int));
  155. #ifdef REDO
  156. E char NDECL(pgetchar);
  157. E void FDECL(pushch, (CHAR_P));
  158. E void FDECL(savech, (CHAR_P));
  159. #endif
  160. E void FDECL(rhack, (char *));
  161. E int NDECL(doextlist);
  162. E void FDECL(enlightenment, (BOOLEAN_P));
  163. E int FDECL(xytod, (SCHAR_P,SCHAR_P));
  164. #ifdef WALKIES
  165. E void FDECL(dtoxy, (coord *,int));
  166. #endif
  167. E int FDECL(movecmd, (CHAR_P));
  168. E int FDECL(getdir, (const char *));
  169. E void NDECL(confdir);
  170. E int FDECL(isok, (int,int));
  171. E char NDECL(readchar);
  172.  
  173. /* ### dbridge.c ### */
  174.  
  175. E boolean FDECL(is_pool, (int,int));
  176. E boolean FDECL(is_lava, (int,int));
  177. E boolean FDECL(is_ice, (int,int));
  178. E int FDECL(is_drawbridge_wall, (int,int));
  179. E boolean FDECL(is_db_wall, (int,int));
  180. E boolean FDECL(find_drawbridge, (int *,int*));
  181. E boolean FDECL(create_drawbridge, (int,int,int,BOOLEAN_P));
  182. E void FDECL(open_drawbridge, (int,int));
  183. E void FDECL(close_drawbridge, (int,int));
  184. E void FDECL(destroy_drawbridge, (int,int));
  185.  
  186. /* ### decl.c ### */
  187.  
  188. E void NDECL(decl_init);
  189.  
  190. /* ### detect.c ### */
  191.  
  192. E struct obj *FDECL(o_in, (struct obj*,CHAR_P));
  193. E int FDECL(gold_detect, (struct obj *));
  194. E int FDECL(food_detect, (struct obj *));
  195. E int FDECL(object_detect, (struct obj *,int));
  196. E int FDECL(monster_detect, (struct obj *,int));
  197. E int FDECL(trap_detect, (struct obj *));
  198. E const char *FDECL(level_distance, (d_level *));
  199. E void FDECL(use_crystal_ball, (struct obj *));
  200. E void NDECL(do_mapping);
  201. E void NDECL(do_vicinity_map);
  202. #ifdef OVERLAY
  203. E void FDECL(findone, (int,int,genericptr_t));
  204. E void FDECL(openone, (int,int,genericptr_t));
  205. #endif /* OVERLAY */
  206. E int NDECL(findit);
  207. E int NDECL(openit);
  208. E int FDECL(dosearch0, (int));
  209. E int NDECL(dosearch);
  210.  
  211. /* ### display.c ### */
  212.  
  213. #ifdef INVISIBLE_OBJECTS
  214. E struct obj * FDECL(vobj_at, (XCHAR_P,XCHAR_P));
  215. #endif /* INVISIBLE_OBJECTS */
  216. E void FDECL(map_background, (XCHAR_P,XCHAR_P,int));
  217. E void FDECL(map_trap, (struct trap *,int));
  218. E void FDECL(map_object, (struct obj *,int));
  219. E void FDECL(unmap_object, (int,int));
  220. E void FDECL(feel_location, (XCHAR_P,XCHAR_P));
  221. E void FDECL(newsym, (XCHAR_P,XCHAR_P));
  222. E void FDECL(shieldeff, (XCHAR_P,XCHAR_P));
  223. E void FDECL(tmp_at, (int,int));
  224. E void FDECL(swallowed, (int));
  225. E void FDECL(under_water, (int));
  226. E void NDECL(see_monsters);
  227. E void NDECL(set_mimic_blocking);
  228. E void NDECL(see_objects);
  229. E void NDECL(curs_on_u);
  230. E int NDECL(doredraw);
  231. E void NDECL(docrt);
  232. E void FDECL(show_glyph, (XCHAR_P,XCHAR_P,int));
  233. E void NDECL(clear_glyph_buffer);
  234. E void FDECL(row_refresh, (int,int,int));
  235. E void NDECL(cls);
  236. E void FDECL(flush_screen, (int));
  237. E int FDECL(back_to_glyph, (XCHAR_P,XCHAR_P));
  238. E int FDECL(zapdir_to_glyph, (int,int,int));
  239. E int FDECL(glyph_at, (XCHAR_P,XCHAR_P));
  240.  
  241. /* ### do.c ### */
  242.  
  243. #ifdef OVERLAY
  244. E int FDECL(drop, (struct obj *));
  245. E int NDECL(wipeoff);
  246. #endif
  247. E int NDECL(dodrop);
  248. E boolean FDECL(boulder_hits_pool, (struct obj *,int,int,BOOLEAN_P));
  249. E boolean FDECL(flooreffects, (struct obj *,int,int,const char *));
  250. E void FDECL(doaltarobj, (struct obj *));
  251. E boolean FDECL(canletgo, (struct obj *,const char *));
  252. E void FDECL(dropx, (struct obj *));
  253. E void FDECL(dropy, (struct obj *));
  254. E int NDECL(doddrop);
  255. E int NDECL(dodown);
  256. E int NDECL(doup);
  257. #ifdef INSURANCE
  258. E void NDECL(save_currentstate);
  259. #endif
  260. E void FDECL(goto_level, (d_level *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  261. E void NDECL(deferred_goto);
  262. E void FDECL(revive_corpse, (struct obj *,int,BOOLEAN_P));
  263. E void FDECL(remove_cadavers, (struct obj **));
  264. E int NDECL(donull);
  265. E int NDECL(dowipe);
  266. E struct obj *FDECL(splitobj, (struct obj *,long));
  267. E void FDECL(set_wounded_legs, (long,int));
  268. E void NDECL(heal_legs);
  269.  
  270. /* ### do_name.c ### */
  271.  
  272. E void FDECL(getpos, (coord *,BOOLEAN_P,const char *));
  273. E struct monst *FDECL(christen_monst, (struct monst *,const char *));
  274. E int NDECL(do_mname);
  275. E struct obj *FDECL(oname, (struct obj *,const char *,int));
  276. E int NDECL(ddocall);
  277. E void FDECL(docall, (struct obj *));
  278. E char *FDECL(x_monnam, (struct monst *,int,const char *,int));
  279. E char *FDECL(l_monnam, (struct monst *));
  280. E char *FDECL(mon_nam, (struct monst *));
  281. E char *FDECL(Monnam, (struct monst *));
  282. E char *FDECL(Adjmonnam, (struct monst *,const char *));
  283. E char *FDECL(Amonnam, (struct monst *));
  284. E char *FDECL(a_monnam, (struct monst *));
  285. E const char *NDECL(rndmonnam);
  286. E const char *NDECL(hcolor);
  287. E char *FDECL(self_pronoun, (const char *,const char *));
  288. #ifdef REINCARNATION
  289. E const char *NDECL(roguename);
  290. #endif
  291.  
  292. /* ### do_wear.c ### */
  293.  
  294. #ifdef OVERLAY
  295. E int NDECL(Armor_on);
  296. E int NDECL(Boots_on);
  297. E int NDECL(Gloves_on);
  298. E int NDECL(Helmet_on);
  299. E int FDECL(select_off, (struct obj *));
  300. E int NDECL(take_off);
  301. #endif
  302. E void FDECL(off_msg, (struct obj *));
  303. E boolean FDECL(is_helmet, (struct obj *));
  304. E boolean FDECL(is_gloves, (struct obj *));
  305. E boolean FDECL(is_boots, (struct obj *));
  306. E boolean FDECL(is_cloak, (struct obj *));
  307. E boolean FDECL(is_shield, (struct obj *));
  308. E void NDECL(set_wear);
  309. E boolean FDECL(donning, (struct obj *));
  310. E void NDECL(cancel_don);
  311. E int NDECL(Armor_off);
  312. E int NDECL(Armor_gone);
  313. E int NDECL(Helmet_off);
  314. E int NDECL(Gloves_off);
  315. E int NDECL(Boots_off);
  316. E int NDECL(Cloak_off);
  317. E int NDECL(Shield_off);
  318. E void NDECL(Amulet_off);
  319. E void FDECL(Ring_on, (struct obj *));
  320. E void FDECL(Ring_off, (struct obj *));
  321. E void FDECL(Ring_gone, (struct obj *));
  322. E void FDECL(Blindf_on, (struct obj *));
  323. E void FDECL(Blindf_off, (struct obj *));
  324. E int NDECL(dotakeoff);
  325. E int NDECL(doremring);
  326. E int FDECL(cursed, (struct obj *));
  327. E int FDECL(armoroff, (struct obj *));
  328. E int NDECL(dowear);
  329. E int NDECL(doputon);
  330. E void NDECL(find_ac);
  331. E void NDECL(glibr);
  332. E struct obj *NDECL(some_armor);
  333. E void FDECL(erode_armor, (BOOLEAN_P));
  334. E void NDECL(reset_remarm);
  335. E int NDECL(doddoremarm);
  336. E int FDECL(destroy_arm, (struct obj *));
  337. E void FDECL(adj_abon, (struct obj *,SCHAR_P));
  338.  
  339. /* ### dog.c ### */
  340.  
  341. E void FDECL(initedog, (struct monst *));
  342. E void FDECL(make_familiar, (struct obj *,XCHAR_P,XCHAR_P));
  343. E struct monst *NDECL(makedog);
  344. E void NDECL(losedogs);
  345. E void NDECL(keepdogs);
  346. E void FDECL(migrate_to_level, (struct monst *,XCHAR_P,XCHAR_P));
  347. E int FDECL(dogfood, (struct monst *,struct obj *));
  348. E struct monst *FDECL(tamedog, (struct monst *,struct obj *));
  349.  
  350. /* ### dogmove.c ### */
  351.  
  352. E int FDECL(dog_move, (struct monst *,int));
  353. #ifdef OVERLAY
  354. E void FDECL(wantdoor, (int,int,genericptr_t));
  355. #endif
  356.  
  357. /* ### dokick.c ### */
  358.  
  359. E boolean FDECL(ghitm, (struct monst *,struct obj *));
  360. E int NDECL(dokick);
  361. E boolean FDECL(ship_object, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P));
  362. E void NDECL(obj_delivery);
  363. E xchar FDECL(down_gate, (XCHAR_P,XCHAR_P));
  364. E void FDECL(impact_drop, (struct obj *,XCHAR_P,XCHAR_P,XCHAR_P));
  365.  
  366. /* ### dothrow.c ### */
  367.  
  368. E int NDECL(dothrow);
  369. E void FDECL(hurtle, (int,int,int));
  370. E int FDECL(throwit, (struct obj *));
  371. E int FDECL(thitmonst, (struct monst *,struct obj *));
  372. E int FDECL(breaks, (struct obj *,BOOLEAN_P));
  373.  
  374.  
  375. /* ### drawing.c ### */
  376.  
  377. E int FDECL(def_char_to_objclass, (CHAR_P));
  378. E int FDECL(def_char_to_monclass, (CHAR_P));
  379. E void FDECL(assign_graphics, (uchar *,int));
  380. E void FDECL(switch_graphics, (int));
  381. #ifdef REINCARNATION
  382. E void FDECL(assign_rogue_graphics, (BOOLEAN_P));
  383. #endif
  384.  
  385.  
  386. /* ### dungeon.c ### */
  387.  
  388. E void FDECL(save_dungeon, (int));
  389. E void FDECL(restore_dungeon, (int));
  390. E void FDECL(insert_branch, (branch *,BOOLEAN_P));
  391. E void NDECL(init_dungeons);
  392. E s_level *FDECL(find_level, (const char *));
  393. E s_level *FDECL(Is_special, (d_level *));
  394. E branch *FDECL(Is_branchlev, (d_level *));
  395. E xchar FDECL(ledger_no, (d_level *));
  396. E xchar NDECL(maxledgerno);
  397. E xchar FDECL(depth, (d_level *));
  398. E xchar FDECL(dunlev, (d_level *));
  399. E xchar FDECL(dunlevs_in_dungeon, (d_level *));
  400. E xchar FDECL(ledger_to_dnum, (XCHAR_P));
  401. E xchar FDECL(ledger_to_dlev, (XCHAR_P));
  402. E xchar FDECL(deepest_lev_reached, (BOOLEAN_P));
  403. E boolean FDECL(on_level, (d_level *,d_level *));
  404. E void FDECL(next_level, (BOOLEAN_P));
  405. E void FDECL(prev_level, (BOOLEAN_P));
  406. E void NDECL(u_on_sstairs);
  407. E void NDECL(u_on_upstairs);
  408. E void NDECL(u_on_dnstairs);
  409. E boolean FDECL(On_stairs, (XCHAR_P,XCHAR_P));
  410. E void FDECL(get_level, (d_level *,int));
  411. E boolean FDECL(Is_botlevel, (d_level *));
  412. E boolean FDECL(Can_fall_thru, (d_level *));
  413. E boolean FDECL(Can_dig_down, (d_level *));
  414. E boolean FDECL(Can_rise_up, (d_level *));
  415. #ifdef MULDGN
  416. E boolean FDECL(In_quest, (d_level *));
  417. E boolean FDECL(In_mines, (d_level *));
  418. E branch *FDECL(dungeon_branch, (const char *));
  419. E boolean FDECL(at_dgn_entrance, (const char *));
  420. #endif
  421. E boolean FDECL(In_hell, (d_level *));
  422. E boolean FDECL(In_tower, (d_level *));
  423. E void FDECL(goto_hell, (BOOLEAN_P,BOOLEAN_P));
  424. E void FDECL(assign_level, (d_level *,d_level *));
  425. E void FDECL(assign_rnd_level, (d_level *,d_level *,int));
  426. E int FDECL(induced_align, (int));
  427. E boolean FDECL(Invocation_lev, (d_level *));
  428. E xchar NDECL(level_difficulty);
  429. #ifdef WIZARD
  430. E void NDECL(print_dungeon);
  431. #endif
  432.  
  433. /* ### eat.c ### */
  434.  
  435. #ifdef OVERLAY
  436. E int NDECL(eatmdone);
  437. E int NDECL(eatfood);
  438. E int NDECL(opentin);
  439. E int NDECL(unfaint);
  440. #endif
  441. #ifdef POLYSELF
  442. E boolean FDECL(is_edible, (struct obj *));
  443. #endif
  444. E void NDECL(init_uhunger);
  445. E int NDECL(Hear_again);
  446. E void NDECL(reset_eat);
  447. E void FDECL(bill_dummy_object, (struct obj *));
  448. E int NDECL(doeat);
  449. E void NDECL(gethungry);
  450. E void FDECL(morehungry, (int));
  451. E void FDECL(lesshungry, (int));
  452. E boolean NDECL(is_fainted);
  453. E void NDECL(reset_faint);
  454. #if 0
  455. E void NDECL(sync_hunger);
  456. #endif
  457. E void FDECL(newuhs, (BOOLEAN_P));
  458. E struct obj *FDECL(floorfood, (const char *,BOOLEAN_P));
  459. E void NDECL(vomit);
  460. E int FDECL(eaten_stat, (int,struct obj *));
  461. E void FDECL(food_disappears, (struct obj *));
  462.  
  463. /* ### end.c ### */
  464.  
  465. E int NDECL(done1);
  466. E int NDECL(done2);
  467. #ifdef OVERLAY
  468. E int NDECL(done_intr);
  469. #endif
  470. E void FDECL(done_in_by, (struct monst *));
  471. E void VDECL(panic, (const char *,...)) PRINTF_F(1,2);
  472. E void FDECL(done, (int));
  473. #ifdef NOSAVEONHANGUP
  474. E void NDECL(hangup);
  475. #endif
  476. E void FDECL(container_contents, (struct obj *,BOOLEAN_P,BOOLEAN_P));
  477. E void FDECL(terminate, (int));
  478.  
  479. /* ### engrave.c ### */
  480.  
  481. E const char *NDECL(random_engraving);
  482. #ifdef ELBERETH
  483. E int FDECL(sengr_at, (const char *,XCHAR_P,XCHAR_P));
  484. #endif
  485. E struct engr *FDECL(engr_at, (XCHAR_P,XCHAR_P));
  486. E void FDECL(u_wipe_engr, (int));
  487. E void FDECL(wipe_engr_at, (XCHAR_P,XCHAR_P,XCHAR_P));
  488. E void FDECL(read_engr_at, (int,int));
  489. E void FDECL(make_engr_at, (int,int,const char *,long,XCHAR_P));
  490. E int NDECL(freehand);
  491. E int NDECL(doengrave);
  492. E void FDECL(save_engravings, (int,int));
  493. E void FDECL(rest_engravings, (int));
  494.  
  495. /* ### exper.c ### */
  496.  
  497. E long FDECL(newuexp, (unsigned));
  498. E int FDECL(experience, (struct monst *,int));
  499. E void FDECL(more_experienced, (int,int));
  500. E void NDECL(losexp);
  501. E void NDECL(newexplevel);
  502. E void NDECL(pluslvl);
  503. E long NDECL(rndexp);
  504.  
  505. /* ### explode.c ### */
  506.  
  507. E void FDECL(explode, (int,int,int,int,CHAR_P));
  508.  
  509. /* ### extralev.c ### */
  510.  
  511. #ifdef REINCARNATION
  512. E void NDECL(makeroguerooms);
  513. E void FDECL(corr, (int,int));
  514. E void NDECL(makerogueghost);
  515. #endif
  516.  
  517. /* ### files.c ### */
  518.  
  519. E FILE *FDECL(fopen_datafile, (const char *,const char *));
  520. #ifdef MFLOPPY
  521. E void NDECL(set_lock_and_bones);
  522. #endif
  523. E void FDECL(set_levelfile_name, (char *,int));
  524. E int FDECL(create_levelfile, (int));
  525. E int FDECL(open_levelfile, (int));
  526. E void FDECL(delete_levelfile, (int));
  527. E void NDECL(clearlocks);
  528. E int FDECL(create_bonesfile, (d_level*,char **));
  529. E int FDECL(open_bonesfile, (d_level*,char **));
  530. E int FDECL(delete_bonesfile, (d_level*));
  531. E void NDECL(compress_bonesfile);
  532. E void NDECL(set_savefile_name);
  533. #ifdef INSURANCE
  534. E void FDECL(save_savefile_name, (int));
  535. #endif
  536. #if defined(WIZARD) && !defined(MICRO)
  537. E void NDECL(set_error_savefile);
  538. #endif
  539. E int NDECL(create_savefile);
  540. E int NDECL(open_savefile);
  541. E int NDECL(delete_savefile);
  542. E void FDECL(compress, (const char *));
  543. E void FDECL(uncompress, (const char *));
  544. E boolean FDECL(lock_file, (const char *,int));
  545. E void FDECL(unlock_file, (const char *));
  546. E void FDECL(read_config_file, (const char *));
  547. E void FDECL(check_recordfile, (const char *));
  548.  
  549. /* ### fountain.c ### */
  550.  
  551. E void FDECL(dogushforth, (int));
  552. # ifdef OVERLAY
  553. E void FDECL(gush, (int,int,genericptr_t));
  554. # endif /* OVERLAY */
  555. E void FDECL(dryup, (XCHAR_P,XCHAR_P));
  556. E void NDECL(drinkfountain);
  557. E void FDECL(dipfountain, (struct obj *));
  558. #ifdef SINKS
  559. E void FDECL(breaksink, (int,int));
  560. E void NDECL(drinksink);
  561. #endif
  562.  
  563. /* ### hack.c ### */
  564.  
  565. E boolean FDECL(revive_nasty, (int,int,const char*));
  566. E void FDECL(movobj, (struct obj *,XCHAR_P,XCHAR_P));
  567. E boolean FDECL(may_dig, (XCHAR_P,XCHAR_P));
  568. E boolean FDECL(invocation_pos, (XCHAR_P,XCHAR_P));
  569. E void NDECL(domove);
  570. E void NDECL(spoteffects);
  571. E char *FDECL(in_rooms, (XCHAR_P,XCHAR_P,int));
  572. E void FDECL(check_special_room, (BOOLEAN_P));
  573. E int NDECL(dopickup);
  574. E void NDECL(lookaround);
  575. E int NDECL(monster_nearby);
  576. E void FDECL(nomul, (int));
  577. E void FDECL(losehp, (int,const char *,BOOLEAN_P));
  578. E int NDECL(weight_cap);
  579. E int NDECL(inv_weight);
  580. E int NDECL(near_capacity);
  581. E int NDECL(max_capacity);
  582. E boolean FDECL(check_capacity, (const char *));
  583. E int NDECL(inv_cnt);
  584. E int FDECL(identify, (struct obj *));
  585.  
  586. /* ### hacklib.c ### */
  587.  
  588. E boolean FDECL(digit, (CHAR_P));
  589. E boolean FDECL(letter, (CHAR_P));
  590. E char FDECL(highc, (CHAR_P));
  591. E char FDECL(lowc, (CHAR_P));
  592. E char *FDECL(lcase, (char *));
  593. E char *FDECL(eos, (char *));
  594. E char *FDECL(s_suffix, (const char *));
  595. E char *FDECL(xcrypt, (const char *));
  596. E boolean FDECL(onlyspace, (const char *));
  597. E char *FDECL(tabexpand, (char *));
  598. E char *FDECL(visctrl, (CHAR_P));
  599. E const char *FDECL(ordin, (int));
  600. E char *FDECL(sitoa, (int));
  601. E int FDECL(sgn, (int));
  602. E int FDECL(rounddiv, (long,int));
  603. E int FDECL(dist2, (int,int,int,int));
  604. E int FDECL(distmin, (int,int,int,int));
  605. E boolean FDECL(online2, (int,int,int,int));
  606. E boolean FDECL(pmatch, (const char *,const char *));
  607. #ifndef STRNCMPI
  608. E int FDECL(strncmpi, (const char *,const char *,int));
  609. #endif
  610. #ifndef STRSTRI
  611. # ifndef GCC_WARN
  612. E  char *FDECL(strstri, (const char *,const char *));
  613. # else
  614. E  char *FDECL(strstri, (char *,const char *));
  615. # endif
  616. #endif
  617. E void NDECL(setrandom);
  618. E int NDECL(getyear);
  619. E char *NDECL(get_date);
  620. E int NDECL(phase_of_the_moon);
  621. E boolean NDECL(friday_13th);
  622. E int NDECL(night);
  623. E int NDECL(midnight);
  624.  
  625. /* ### invent.c ### */
  626.  
  627. #ifdef OVERLAY
  628. E int FDECL(ckunpaid, (struct obj *));
  629. #endif
  630. E struct obj *FDECL(addinv, (struct obj *));
  631. E struct obj *FDECL(hold_another_object,
  632.             (struct obj *,const char *,const char *,const char *));
  633. E void FDECL(useup, (struct obj *));
  634. E void FDECL(freeinv, (struct obj *));
  635. E void FDECL(delallobj, (int,int));
  636. E void FDECL(delobj, (struct obj *));
  637. E void FDECL(freeobj, (struct obj *));
  638. E struct obj *FDECL(sobj_at, (int,int,int));
  639. E int FDECL(carried, (struct obj *));
  640. E struct obj *FDECL(carrying, (int));
  641. E boolean NDECL(have_lizard);
  642. E struct obj *FDECL(o_on, (unsigned int,struct obj *));
  643. E boolean FDECL(obj_here, (struct obj *,int,int));
  644. E struct obj *FDECL(g_at, (int,int));
  645. E struct obj *FDECL(mkgoldobj, (long));
  646. E struct obj *FDECL(getobj, (const char *,const char *));
  647. E int FDECL(ggetobj, (const char *,int (*)(OBJ_P),int));
  648. E int FDECL(askchain, (struct obj **,const char *,int,int (*)(OBJ_P),
  649.             int (*)(OBJ_P),int,const char *));
  650. E void FDECL(prinv, (const char *,struct obj *,long));
  651. E char *FDECL(xprname, (struct obj *,CHAR_P,BOOLEAN_P,long));
  652. E int NDECL(ddoinv);
  653. E char FDECL(display_inventory, (const char *,BOOLEAN_P));
  654. E int NDECL(dotypeinv);
  655. E int NDECL(dolook);
  656. E void FDECL(stackobj, (struct obj *));
  657. E int NDECL(doprgold);
  658. E int NDECL(doprwep);
  659. E int NDECL(doprarm);
  660. E int NDECL(doprring);
  661. E int NDECL(dopramulet);
  662. E int NDECL(doprtool);
  663. E void FDECL(useupf, (struct obj *));
  664. E char *FDECL(let_to_name, (CHAR_P,BOOLEAN_P));
  665. E void NDECL(reassign);
  666. E int NDECL(doorganize);
  667. E int FDECL(count_unpaid, (struct obj *));
  668.  
  669. /* ### ioctl.c ### */
  670.  
  671. #ifdef UNIX
  672. E void NDECL(getwindowsz);
  673. E void NDECL(getioctls);
  674. E void NDECL(setioctls);
  675. # ifdef SUSPEND
  676. E int NDECL(dosuspend);
  677. # endif /* SUSPEND */
  678. #endif /* UNIX */
  679.  
  680. /* ### lock.c ### */
  681.  
  682. #ifdef OVERLAY
  683. E int NDECL(forcelock);
  684. E int NDECL(picklock);
  685. #endif
  686. E boolean FDECL(picking_at, (int,int));
  687. E void NDECL(reset_pick);
  688. E int FDECL(pick_lock, (struct obj *));
  689. E int NDECL(doforce);
  690. E boolean FDECL(boxlock, (struct obj *,struct obj *));
  691. E boolean FDECL(doorlock, (struct obj *,int,int));
  692. E int NDECL(doopen);
  693. E int NDECL(doclose);
  694.  
  695. #ifdef MAC
  696.  
  697. /* ### macerrs.c ### */
  698.  
  699. E void FDECL(comment, (char *,long));
  700. E void FDECL(showerror, (char *,const char *));
  701. E Boolean FDECL(itworked, (short));
  702. E void FDECL(mustwork, (short));
  703. E void FDECL(attemptingto, (char *));
  704. E void FDECL(pushattemptingto, (char *));
  705. E void NDECL(popattempt);
  706.  
  707. /* ### macfile.c ### */
  708.  
  709. E int FDECL(maccreat, (const char *,long));
  710. E int FDECL(macopen, (const char *,int,long));
  711. E int FDECL(macclose, (int));
  712. E int FDECL(macread, (int,void *,unsigned));
  713. E int FDECL(macwrite, (int,void *,unsigned));
  714. E long FDECL(macseek, (int,long,short));
  715.  
  716. /* ### macmain.c ### */
  717.  
  718. E void NDECL(UnloadAllSegments);
  719.  
  720. /* ### macsnd.c ### */
  721.  
  722. E void FDECL(mac_speaker, (struct obj *,char *));
  723.  
  724. /* ### mactopl.c ### */
  725.  
  726. E void FDECL(addtopl, (const char *));
  727. E void FDECL(update_topl, (const char *));
  728.  
  729. /* ### macunix.c ### */
  730.  
  731. E int FDECL(uptodate, (int));
  732. E void FDECL(regularize, (char *));
  733. E void NDECL(getlock);
  734.  
  735. /* ### macwin.c ### */
  736.  
  737. E void FDECL(addToKeyQueue, (int,Boolean));
  738.  
  739. /* ### maccurs.c ### */
  740.  
  741. E int FDECL(clickSector, (int,int,int,int));
  742.  
  743.  
  744. #endif /* MAC */
  745.  
  746. /* ### mail.c ### */
  747.  
  748. #ifdef MAIL
  749. # ifdef UNIX
  750. E void NDECL(getmailstatus);
  751. # endif
  752. E void NDECL(ckmailstatus);
  753. E void FDECL(readmail, (struct obj *));
  754. #endif /* MAIL */
  755.  
  756. /* ### makemon.c ### */
  757.  
  758. E struct monst *FDECL(makemon, (struct permonst *,int,int));
  759. E boolean FDECL(enexto, (coord *,XCHAR_P,XCHAR_P,struct permonst *));
  760. E int FDECL(goodpos, (int,int,struct monst *,struct permonst *));
  761. E void FDECL(rloc, (struct monst *));
  762. E void FDECL(rloc_to, (struct monst *,int,int));
  763. E void FDECL(rloc_shk, (struct monst *));
  764. E void FDECL(vloc, (struct monst *));
  765. E struct permonst *NDECL(rndmonst);
  766. E struct permonst *FDECL(mkclass, (CHAR_P,int));
  767. E int FDECL(adj_lev, (struct permonst *));
  768. E struct permonst *FDECL(grow_up, (struct monst *,struct monst *));
  769. E int FDECL(mongets, (struct monst *,int));
  770. E int FDECL(golemhp, (int));
  771. E boolean FDECL(peace_minded, (struct permonst *));
  772. E void FDECL(set_malign, (struct monst *));
  773. E void FDECL(set_mimic_sym, (struct monst *));
  774.  
  775. /* ### mcastu.c ### */
  776.  
  777. E int FDECL(castmu, (struct monst *,struct attack *));
  778. E int FDECL(buzzmu, (struct monst *,struct attack *));
  779.  
  780. /* ### mhitm.c ### */
  781.  
  782. E int FDECL(fightm, (struct monst *));
  783. E int FDECL(mattackm, (struct monst *,struct monst *));
  784. E int FDECL(noattacks, (struct permonst *));
  785.  
  786. /* ### mhitu.c ### */
  787.  
  788. #ifdef POLYSELF
  789. E struct monst *NDECL(cloneu);
  790. #endif
  791. E void FDECL(expels, (struct monst *,struct permonst *,BOOLEAN_P));
  792. E int FDECL(mattacku, (struct monst *));
  793. E void FDECL(mdamageu, (struct monst *,int));
  794. E int FDECL(could_seduce, (struct monst *,struct monst *,struct attack *));
  795. #ifdef SEDUCE
  796. E int FDECL(doseduce, (struct monst *));
  797. #endif
  798.  
  799. /* ### minion.c ### */
  800.  
  801. E void FDECL(msummon, (struct permonst *));
  802. E void FDECL(summon_minion, (ALIGNTYP_P,BOOLEAN_P));
  803. E int FDECL(demon_talk, (struct monst *));
  804. E long FDECL(bribe, (struct monst *));
  805. E int NDECL(dprince);
  806. E int NDECL(dlord);
  807. E int NDECL(llord);
  808. E int NDECL(ndemon);
  809. E int NDECL(lminion);
  810.  
  811. /* ### mklev.c ### */
  812.  
  813. #ifdef OVERLAY
  814. E int FDECL(do_comp, (genericptr_t,genericptr_t));
  815. #endif
  816. E void NDECL(sort_rooms);
  817. E void FDECL(add_room, (int,int,int,int,BOOLEAN_P,SCHAR_P,BOOLEAN_P));
  818. E void FDECL(add_subroom, (struct mkroom *,int,int,int,int,
  819.                BOOLEAN_P,SCHAR_P,BOOLEAN_P));
  820. E void NDECL(makecorridors);
  821. E void FDECL(add_door, (int,int,struct mkroom *));
  822. E void NDECL(mklev);
  823. #ifdef SPECIALIZATION
  824. E void FDECL(topologize, (struct mkroom *,BOOLEAN_P));
  825. #else
  826. E void FDECL(topologize, (struct mkroom *));
  827. #endif
  828. E void FDECL(place_branch, (branch *,XCHAR_P,XCHAR_P));
  829. E boolean FDECL(occupied, (XCHAR_P,XCHAR_P));
  830. E int FDECL(okdoor, (XCHAR_P,XCHAR_P));
  831. E void FDECL(dodoor, (int,int,struct mkroom *));
  832. E void FDECL(mktrap, (int,int,struct mkroom *,coord*));
  833. E void FDECL(mkstairs, (XCHAR_P,XCHAR_P,CHAR_P,struct mkroom *));
  834. E void NDECL(mkinvokearea);
  835.  
  836. /* ### mkmap.c ### */
  837.  
  838. void FDECL(flood_fill_rm, (int,int,int,BOOLEAN_P,BOOLEAN_P));
  839.  
  840. /* ### mkmaze.c ### */
  841.  
  842. E void FDECL(wallification, (int,int,int,int));
  843. E void FDECL(walkfrom, (int,int));
  844. E void FDECL(makemaz, (const char *));
  845. E void FDECL(move, (int *,int *,int));
  846. E void FDECL(mazexy, (coord *));
  847. E void NDECL(bound_digging);
  848. E void FDECL(mkportal, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  849. E boolean FDECL(bad_location, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  850. E void FDECL(place_lregion, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  851.                  XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  852.                  XCHAR_P,d_level *));
  853. E void NDECL(movebubbles);
  854. E void NDECL(water_friction);
  855. E void FDECL(save_waterlevel, (int));
  856. E void FDECL(restore_waterlevel, (int));
  857.  
  858. /* ### mkobj.c ### */
  859.  
  860. E struct obj *FDECL(mkobj_at, (CHAR_P,int,int,BOOLEAN_P));
  861. E struct obj *FDECL(mksobj_at, (int,int,int,BOOLEAN_P));
  862. E struct obj *FDECL(mkobj, (CHAR_P,BOOLEAN_P));
  863. E int NDECL(rndmonnum);
  864. E struct obj *FDECL(mksobj, (int,BOOLEAN_P,BOOLEAN_P));
  865. E int FDECL(weight, (struct obj *));
  866. E void FDECL(mkgold, (long,int,int));
  867. E struct obj *FDECL(mkcorpstat, (int,struct permonst *,int,int,BOOLEAN_P));
  868. E struct obj *FDECL(mk_tt_object, (int,int,int));
  869. E struct obj *FDECL(mk_named_object, (int,struct permonst *,int,int,char *,int));
  870. E void FDECL(bless, (struct obj *));
  871. E void FDECL(unbless, (struct obj *));
  872. E void FDECL(curse, (struct obj *));
  873. E void FDECL(uncurse, (struct obj *));
  874. E void FDECL(blessorcurse, (struct obj *,int));
  875. E boolean FDECL(is_flammable, (struct obj *));
  876. E void FDECL(place_object, (struct obj *,int,int));
  877. E void FDECL(move_object, (struct obj *,int,int));
  878. E void FDECL(remove_object, (struct obj *));
  879. E int FDECL(bcsign, (struct obj *));
  880.  
  881. /* ### mkroom.c ### */
  882.  
  883. E void FDECL(mkroom, (int));
  884. E void FDECL(fill_zoo, (struct mkroom *));
  885. E boolean FDECL(nexttodoor, (int,int));
  886. E boolean FDECL(has_dnstairs, (struct mkroom *));
  887. E boolean FDECL(has_upstairs, (struct mkroom *));
  888. E int FDECL(somex, (struct mkroom *));
  889. E int FDECL(somey, (struct mkroom *));
  890. E boolean FDECL(inside_room, (struct mkroom *,XCHAR_P,XCHAR_P));
  891. E boolean FDECL(somexy, (struct mkroom *,coord *));
  892. E void FDECL(mkundead, (coord *));
  893. E struct permonst *NDECL(courtmon);
  894. E void FDECL(save_rooms, (int));
  895. E void FDECL(rest_rooms, (int));
  896. E struct mkroom *FDECL(search_special, (SCHAR_P));
  897.  
  898. /* ### mon.c ### */
  899.  
  900. E int FDECL(minwater, (struct monst *));
  901. E void NDECL(movemon);
  902. E void FDECL(meatgold, (struct monst *));
  903. E void FDECL(meatobj, (struct monst *));
  904. E void FDECL(mpickgold, (struct monst *));
  905. E void FDECL(mpickgems, (struct monst *));
  906. E void FDECL(mpickstuff, (struct monst *,const char *));
  907. E int FDECL(curr_mon_load, (struct monst *));
  908. E int FDECL(max_mon_load, (struct monst *));
  909. E boolean FDECL(can_carry, (struct monst *,struct obj *));
  910. E int FDECL(mfndpos, (struct monst *,coord *,long *,long));
  911. E boolean FDECL(monnear, (struct monst *,int,int));
  912. E void FDECL(monfree, (struct monst *));
  913. E void FDECL(replmon, (struct monst *,struct monst *));
  914. E void FDECL(relmon, (struct monst *));
  915. E void FDECL(mondead, (struct monst *));
  916. E void FDECL(mondied, (struct monst *));
  917. E void FDECL(mongone, (struct monst *));
  918. E void FDECL(monstone, (struct monst *));
  919. E void FDECL(monkilled, (struct monst *,const char *,UCHAR_P));
  920. E void FDECL(unstuck, (struct monst *));
  921. E void FDECL(killed, (struct monst *));
  922. E void FDECL(xkilled, (struct monst *,int));
  923. E void FDECL(mon_to_stone, (struct monst*));
  924. E void FDECL(mnexto, (struct monst *));
  925. E boolean FDECL(mnearto, (struct monst *,XCHAR_P,XCHAR_P,BOOLEAN_P));
  926. E void FDECL(poisontell, (int));
  927. E void FDECL(poisoned, (const char *,int,const char *,int));
  928. E void FDECL(m_respond, (struct monst *));
  929. E void FDECL(setmangry, (struct monst *));
  930. E void FDECL(wakeup, (struct monst *));
  931. E void NDECL(wake_nearby);
  932. E void FDECL(seemimic, (struct monst *));
  933. E void NDECL(rescham);
  934. E void NDECL(restartcham);
  935. E int FDECL(newcham, (struct monst *,struct permonst *));
  936. E void FDECL(golemeffects, (struct monst *,int,int));
  937. E boolean FDECL(angry_guards, (BOOLEAN_P));
  938. E void NDECL(pacify_guards);
  939.  
  940. /* ### mondata.c ### */
  941.  
  942. E boolean FDECL(attacktype, (struct permonst *,int));
  943. E boolean FDECL(poly_when_stoned, (struct permonst *));
  944. E boolean FDECL(resists_drli, (struct permonst *));
  945. E boolean FDECL(ranged_attk, (struct permonst *));
  946. E boolean FDECL(hates_silver, (struct permonst *));
  947. E boolean FDECL(can_track, (struct permonst *));
  948. #ifdef POLYSELF
  949. E boolean FDECL(breakarm, (struct permonst *));
  950. E boolean FDECL(sliparm, (struct permonst *));
  951. #endif
  952. E boolean FDECL(sticks, (struct permonst *));
  953. /* E boolean FDECL(canseemon, (struct monst *)); */
  954. E boolean FDECL(dmgtype, (struct permonst *,int));
  955. E int FDECL(max_passive_dmg, (struct monst *,struct monst *));
  956. E int FDECL(monsndx, (struct permonst *));
  957. E int FDECL(name_to_mon, (char *));
  958. #ifdef POLYSELF
  959. E boolean FDECL(webmaker, (struct permonst *));
  960. #endif
  961. E int FDECL(gender, (struct monst *));
  962. E boolean FDECL(levl_follower, (struct monst *));
  963. E struct permonst *NDECL(player_mon);
  964. E int FDECL(little_to_big, (int));
  965. E int FDECL(big_to_little, (int));
  966. E const char *FDECL(locomotion, (const struct permonst *,const char *));
  967.  
  968. /* ### monmove.c ### */
  969.  
  970. # ifdef POLYSELF
  971. E boolean FDECL(itsstuck, (struct monst *));
  972. # endif
  973. E boolean FDECL(mb_trapped, (struct monst *));
  974. E int FDECL(dochugw, (struct monst *));
  975. E boolean FDECL(onscary, (int,int,struct monst *));
  976. E int FDECL(dochug, (struct monst *));
  977. E int FDECL(m_move, (struct monst *,int));
  978. E boolean FDECL(closed_door, (int,int));
  979. E boolean FDECL(accessible, (int,int));
  980. E void FDECL(set_apparxy, (struct monst *));
  981.  
  982. /* ### monst.c ### */
  983.  
  984. E void NDECL(monst_init);
  985.  
  986. /* ### monstr.c ### */
  987.  
  988. E void NDECL(monstr_init);
  989.  
  990. /* ### mplayer.c ### */
  991.  
  992. E struct monst *FDECL(mk_mplayer, (struct permonst *,XCHAR_P,
  993.                    XCHAR_P,BOOLEAN_P));
  994. E void FDECL(create_mplayers, (int,BOOLEAN_P));
  995. E void FDECL(mplayer_talk, (struct monst *));
  996.  
  997. #ifdef MICRO
  998.  
  999. /* ### msdos.c,os2.c,tos.c ### */
  1000.  
  1001. E int NDECL(tgetch);
  1002. #  ifndef TOS
  1003. E char NDECL(switchar);
  1004. #  endif
  1005. # ifndef __GO32__
  1006. E long FDECL(freediskspace, (char *));
  1007. E int FDECL(findfirst, (char *));
  1008. E int NDECL(findnext);
  1009. E char *NDECL(foundfile_buffer);
  1010. E long FDECL(filesize, (char *));
  1011. # endif /* __GO32__ */
  1012. E void FDECL(chdrive, (char *));
  1013. # ifndef TOS
  1014. E void NDECL(disable_ctrlP);
  1015. E void NDECL(enable_ctrlP);
  1016. # endif
  1017. # if defined(MICRO) && !defined(AMIGA)
  1018. E void NDECL(get_scr_size);
  1019. #  ifndef TOS
  1020. E void FDECL(gotoxy, (int,int));
  1021. #  endif
  1022. # endif
  1023. # ifdef TOS
  1024. E int FDECL(_copyfile, (char *,char *));
  1025. E int NDECL(kbhit);
  1026. E void NDECL(set_colors);
  1027. E void NDECL(restore_colors);
  1028. #  ifdef SUSPEND
  1029. E int NDECL(dosuspend);
  1030. #  endif
  1031. # endif /* TOS */
  1032.  
  1033. #endif /* MICRO */
  1034.  
  1035. /* ### mthrowu.c ### */
  1036.  
  1037. E int FDECL(thitu, (int,int,struct obj *,const char *));
  1038. E void FDECL(thrwmu, (struct monst *));
  1039. E int FDECL(spitmu, (struct monst *,struct attack *));
  1040. E int FDECL(breamu, (struct monst *,struct attack *));
  1041. E boolean FDECL(linedup, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1042. E boolean FDECL(lined_up, (struct monst *));
  1043. E struct obj *FDECL(m_carrying, (struct monst *,int));
  1044. E void FDECL(m_useup, (struct monst *,struct obj *));
  1045. #ifdef MUSE
  1046. E void FDECL(m_throw, (struct monst *,int,int,int,int,int,struct obj *));
  1047. #endif
  1048.  
  1049. /* ### muse.c ### */
  1050.  
  1051. #ifdef MUSE
  1052. E boolean FDECL(find_defensive, (struct monst *));
  1053. E int FDECL(use_defensive, (struct monst *));
  1054. E int FDECL(rnd_defensive_item, (struct monst *));
  1055. E boolean FDECL(find_offensive, (struct monst *));
  1056. E int FDECL(use_offensive, (struct monst *));
  1057. E int FDECL(rnd_offensive_item, (struct monst *));
  1058. E boolean FDECL(find_misc, (struct monst *));
  1059. E int FDECL(use_misc, (struct monst *));
  1060. E int FDECL(rnd_misc_item, (struct monst *));
  1061. E boolean FDECL(searches_for_item, (struct monst *,struct obj *));
  1062. #endif
  1063.  
  1064. /* ### music.c ### */
  1065.  
  1066. E void NDECL(awaken_soldiers);
  1067. E int FDECL(do_play_instrument, (struct obj *));
  1068.  
  1069. /* ### o_init.c ### */
  1070.  
  1071. E int FDECL(letindex, (CHAR_P));
  1072. E void NDECL(init_objects);
  1073. E int NDECL(find_skates);
  1074. E void NDECL(oinit);
  1075. E void FDECL(savenames, (int));
  1076. E void FDECL(restnames, (int));
  1077. E void FDECL(discover_object, (int,BOOLEAN_P));
  1078. E void FDECL(undiscover_object, (int));
  1079. E int NDECL(dodiscovered);
  1080.  
  1081. /* ### objects.c ### */
  1082.  
  1083. E void NDECL(objects_init);
  1084.  
  1085. /* ### objnam.c ### */
  1086.  
  1087. E char *FDECL(typename, (int));
  1088. E boolean FDECL(obj_is_pname, (struct obj *));
  1089. E char *FDECL(distant_name, (struct obj *,char *(*)(OBJ_P)));
  1090. E char *FDECL(xname, (struct obj *));
  1091. E char *FDECL(doname, (struct obj *));
  1092. E char *FDECL(singular, (struct obj *,char *(*)(OBJ_P)));
  1093. E char *FDECL(an, (const char *));
  1094. E char *FDECL(An, (const char *));
  1095. E char *FDECL(The, (const char *));
  1096. E char *FDECL(the, (const char *));
  1097. E char *FDECL(aobjnam, (struct obj *,const char *));
  1098. E char *FDECL(Doname2, (struct obj *));
  1099. E char *FDECL(makeplural, (const char *));
  1100. E char *FDECL(makesingular, (const char *));
  1101. E struct obj *FDECL(readobjnam, (char *));
  1102. E int FDECL(rnd_class, (int,int));
  1103.  
  1104. /* ### options.c ### */
  1105.  
  1106. E void NDECL(initoptions);
  1107. E void FDECL(parseoptions, (char *,BOOLEAN_P,BOOLEAN_P));
  1108. E int NDECL(doset);
  1109. E int NDECL(dotogglepickup);
  1110. E void NDECL(option_help);
  1111. E void FDECL(next_opt, (winid,const char *));
  1112. #ifdef TUTTI_FRUTTI
  1113. E int FDECL(fruitadd, (char *));
  1114. #endif
  1115.  
  1116. /* ### pager.c ### */
  1117.  
  1118. E int NDECL(dowhatis);
  1119. E int NDECL(doquickwhatis);
  1120. E int NDECL(doidtrap);
  1121. E int NDECL(dowhatdoes);
  1122. E int NDECL(dohelp);
  1123. E int NDECL(dohistory);
  1124.  
  1125. /* ### pcmain.c ### */
  1126.  
  1127. #if defined(MICRO)
  1128. # ifdef CHDIR
  1129. E void FDECL(chdirx, (char *,BOOLEAN_P));
  1130. # endif /* CHDIR */
  1131. #endif /* MICRO */
  1132.  
  1133. /* ### pcsys.c ### */
  1134.  
  1135. #ifdef MICRO
  1136. E void NDECL(flushout);
  1137. E int NDECL(dosh);
  1138. # ifdef MFLOPPY
  1139. E void FDECL(eraseall, (const char *,const char *));
  1140. E void FDECL(copybones, (int));
  1141. E void NDECL(playwoRAMdisk);
  1142. E int FDECL(saveDiskPrompt, (int));
  1143. E void NDECL(gameDiskPrompt);
  1144. # endif
  1145. E void FDECL(append_slash, (char *));
  1146. E void FDECL(getreturn, (const char *));
  1147. E void VDECL(msmsg, (const char *,...));
  1148. E FILE *FDECL(fopenp, (const char *,const char *));
  1149. E void FDECL(msexit, (int));
  1150. #endif /* MICRO */
  1151.  
  1152. /* ### pctty.c ### */
  1153.  
  1154. #if defined(MICRO)
  1155. E void NDECL(gettty);
  1156. E void FDECL(settty, (const char *));
  1157. E void NDECL(setftty);
  1158. E void VDECL(error, (const char *,...));
  1159. #endif /* MICRO */
  1160.  
  1161. /* ### pcunix.c ### */
  1162.  
  1163. #if defined(MICRO)
  1164. E void FDECL(gethdate, (char *));
  1165. E int FDECL(uptodate, (int));
  1166. E void FDECL(regularize, (char *));
  1167. #endif /* MICRO */
  1168.  
  1169. /* ### pickup.c ### */
  1170.  
  1171. E int FDECL(collect_obj_classes, (char *,struct obj *,BOOLEAN_P,BOOLEAN_P));
  1172. #ifdef OVERLAY
  1173. E int FDECL(ck_bag, (struct obj *));
  1174. E int FDECL(in_container, (struct obj *));
  1175. E int FDECL(out_container, (struct obj *));
  1176. #endif
  1177. E void FDECL(pickup, (int));
  1178. E struct obj *FDECL(pick_obj, (struct obj *));
  1179. E int NDECL(encumber_msg);
  1180. E int NDECL(doloot);
  1181. E int FDECL(use_container, (struct obj *,int));
  1182.  
  1183. /* ### pline.c ### */
  1184.  
  1185. E void VDECL(pline, (const char *,...)) PRINTF_F(1,2);
  1186. E void VDECL(Norep, (const char *,...)) PRINTF_F(1,2);
  1187. E void VDECL(You, (const char *,...)) PRINTF_F(1,2);
  1188. E void VDECL(Your, (const char *,...)) PRINTF_F(1,2);
  1189. E void VDECL(verbalize, (const char *,...)) PRINTF_F(1,2);
  1190. E void VDECL(raw_printf, (const char *,...)) PRINTF_F(1,2);
  1191. E void VDECL(impossible, (const char *,...)) PRINTF_F(1,2);
  1192. E const char *FDECL(align_str, (ALIGNTYP_P));
  1193. E void FDECL(mstatusline, (struct monst *));
  1194. E void NDECL(ustatusline);
  1195.  
  1196. /* ### polyself.c ### */
  1197.  
  1198. E void NDECL(change_sex);
  1199. E void NDECL(newman);
  1200. #ifdef POLYSELF
  1201. E void NDECL(polyself);
  1202. E int FDECL(polymon, (int));
  1203. E void NDECL(rehumanize);
  1204. E int NDECL(dobreathe);
  1205. E int NDECL(dospit);
  1206. E int NDECL(doremove);
  1207. E int NDECL(dospinweb);
  1208. E int NDECL(dosummon);
  1209. E int NDECL(doconfuse);
  1210. E int NDECL(dohide);
  1211. E int NDECL(domindblast);
  1212. #endif
  1213. E const char *FDECL(body_part, (int));
  1214. E int NDECL(poly_gender);
  1215. #ifdef POLYSELF
  1216. E void FDECL(ugolemeffects, (int,int));
  1217. #endif
  1218.  
  1219. /* ### potion.c ### */
  1220.  
  1221. E void FDECL(make_confused, (long,BOOLEAN_P));
  1222. E void FDECL(make_stunned, (long,BOOLEAN_P));
  1223. E void FDECL(make_blinded, (long,BOOLEAN_P));
  1224. E void FDECL(make_sick, (long,BOOLEAN_P));
  1225. E void FDECL(make_vomiting, (long,BOOLEAN_P));
  1226. E void FDECL(make_hallucinated, (long,BOOLEAN_P,long));
  1227. E int NDECL(dodrink);
  1228. E int FDECL(dopotion, (struct obj *));
  1229. E int FDECL(peffects, (struct obj *));
  1230. E void FDECL(healup, (int,int,BOOLEAN_P,BOOLEAN_P));
  1231. E void FDECL(strange_feeling, (struct obj *,const char *));
  1232. E void FDECL(potionhit, (struct monst *,struct obj *));
  1233. E void FDECL(potionbreathe, (struct obj *));
  1234. E boolean FDECL(get_wet, (struct obj *));
  1235. E int NDECL(dodip);
  1236. E void FDECL(djinni_from_bottle, (struct obj *));
  1237.  
  1238. /* ### pray.c ### */
  1239.  
  1240. #ifdef OVERLAY
  1241. E int NDECL(prayer_done);
  1242. #endif
  1243. E int NDECL(dosacrifice);
  1244. E int NDECL(dopray);
  1245. E const char *NDECL(u_gname);
  1246. E int NDECL(doturn);
  1247. E const char *NDECL(a_gname);
  1248. E const char *FDECL(a_gname_at, (XCHAR_P x,XCHAR_P y));
  1249. E const char *FDECL(align_gname, (ALIGNTYP_P));
  1250. E void FDECL(altar_wrath, (int,int));
  1251.  
  1252.  
  1253. /* ### priest.c ### */
  1254.  
  1255. E int FDECL(move_special, (struct monst *,BOOLEAN_P,SCHAR_P,BOOLEAN_P,BOOLEAN_P,
  1256.                XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1257. E char FDECL(temple_occupied, (char *));
  1258. E int FDECL(pri_move, (struct monst *));
  1259. E void FDECL(priestini, (d_level *,struct mkroom *,int,int,BOOLEAN_P));
  1260. E char *FDECL(priestname, (struct monst *));
  1261. E boolean FDECL(p_coaligned, (struct monst *));
  1262. E struct monst *FDECL(findpriest, (CHAR_P));
  1263. E void FDECL(intemple, (int));
  1264. E void FDECL(priest_talk, (struct monst *));
  1265. E struct monst *FDECL(mk_roamer, (struct permonst *,ALIGNTYP_P,
  1266.                   XCHAR_P,XCHAR_P,BOOLEAN_P));
  1267. E void FDECL(reset_hostility, (struct monst *));
  1268. E boolean FDECL(in_your_sanctuary, (XCHAR_P,XCHAR_P));
  1269. E void FDECL(ghod_hitsu, (struct monst *));
  1270. E void NDECL(angry_priest);
  1271.  
  1272. #ifdef MULDGN
  1273. /* ### quest.c ### */
  1274.  
  1275. E void NDECL(quest_init);
  1276. E void NDECL(onquest);
  1277. E void NDECL(nemdead);
  1278. E void NDECL(artitouch);
  1279. E boolean NDECL(ok_to_quest);
  1280. E void FDECL(leader_speaks, (struct monst *));
  1281. E void NDECL(nemesis_speaks);
  1282. E void FDECL(quest_chat, (struct monst *));
  1283. E void FDECL(quest_talk, (struct monst *));
  1284. E void FDECL(quest_stat_check, (struct monst *));
  1285.  
  1286. /* ### questpgr.c ### */
  1287.  
  1288. E void NDECL(load_qtlist);
  1289. E boolean FDECL(is_quest_artifact, (struct obj*));
  1290. E void FDECL(com_pager, (int));
  1291. E void FDECL(qt_pager, (int));
  1292. E struct permonst *NDECL(qt_montype);
  1293. E const char *NDECL(ldrname);
  1294. E boolean NDECL(leaderless);
  1295. #endif
  1296.  
  1297. /* ### random.c ### */
  1298.  
  1299. #if defined(RANDOM) && !defined(__GO32__) /* djgpp has its own random */
  1300. E void FDECL(srandom, (unsigned));
  1301. E char *FDECL(initstate, (unsigned,char *,int));
  1302. E char *FDECL(setstate, (char *));
  1303. E long NDECL(random);
  1304. #endif /* RANDOM */
  1305.  
  1306. /* ### read.c ### */
  1307.  
  1308. E int NDECL(doread);
  1309. E void FDECL(recharge, (struct obj *,int));
  1310. E int FDECL(seffects, (struct obj *));
  1311. #ifdef OVERLAY
  1312. E void FDECL(set_lit, (int,int,genericptr_t));
  1313. #endif /* OVERLAY */
  1314. E void FDECL(litroom, (BOOLEAN_P,struct obj *));
  1315. E void FDECL(do_genocide, (int));
  1316. E void FDECL(punish, (struct obj *));
  1317. E void NDECL(unpunish);
  1318. E boolean FDECL(cant_create, (int *));
  1319. #if defined(WIZARD) || defined(EXPLORE_MODE)
  1320. E boolean NDECL(create_particular);
  1321. #endif
  1322.  
  1323. /* ### rect.c ### */
  1324.  
  1325. E void NDECL(init_rect);
  1326. E NhRect *FDECL(get_rect, (NhRect *));
  1327. E NhRect *NDECL(rnd_rect);
  1328. E void FDECL(remove_rect, (NhRect *));
  1329. E void FDECL(add_rect, (NhRect *));
  1330. E void FDECL(split_rects, (NhRect *,NhRect *));
  1331.  
  1332. /* ### restore.c ### */
  1333.  
  1334. E int FDECL(dorecover, (int));
  1335. E void NDECL(trickery);
  1336. E void FDECL(getlev, (int,int,XCHAR_P,BOOLEAN_P));
  1337. E void NDECL(minit);
  1338. #ifdef ZEROCOMP
  1339. E int FDECL(mread, (int,genericptr_t,unsigned int));
  1340. #else
  1341. E void FDECL(mread, (int,genericptr_t,unsigned int));
  1342. #endif
  1343.  
  1344. /* ### rip.c ### */
  1345.  
  1346. E void FDECL(outrip, (int,winid));
  1347.  
  1348. /* ### rnd.c ### */
  1349.  
  1350. E int FDECL(rn2, (int));
  1351. E int FDECL(rnl, (int));
  1352. E int FDECL(rnd, (int));
  1353. E int FDECL(d, (int,int));
  1354. E int FDECL(rne, (int));
  1355. E int FDECL(rnz, (int));
  1356.  
  1357. /* ### rumors.c ### */
  1358.  
  1359. E char *FDECL(getrumor, (int));
  1360. E void FDECL(outrumor, (int,BOOLEAN_P));
  1361. E void FDECL(save_oracles, (int));
  1362. E void FDECL(restore_oracles, (int));
  1363. E int FDECL(doconsult, (struct monst *));
  1364.  
  1365. /* ### save.c ### */
  1366.  
  1367. E int NDECL(dosave);
  1368. #ifndef NOSAVEONHANGUP
  1369. E int NDECL(hangup);
  1370. #endif /* NOSAVEONHANGUP */
  1371. E int NDECL(dosave0);
  1372. #ifdef INSURANCE
  1373. E void NDECL(savestateinlock);
  1374. #endif
  1375. #ifdef MFLOPPY
  1376. E boolean FDECL(savelev, (int,XCHAR_P,int));
  1377. E boolean FDECL(swapin_file, (int));
  1378. E void NDECL(co_false);
  1379. #else
  1380. E void FDECL(savelev, (int,XCHAR_P,int));
  1381. #endif
  1382. E void FDECL(bufon, (int));
  1383. E void FDECL(bflush, (int));
  1384. E void FDECL(bwrite, (int,genericptr_t,unsigned int));
  1385. E void FDECL(bclose, (int));
  1386. #ifdef TUTTI_FRUTTI
  1387. E void FDECL(savefruitchn, (int,int));
  1388. #endif
  1389.  
  1390. /* ### shk.c ### */
  1391.  
  1392. E char *FDECL(shkname, (struct monst *));
  1393. E void FDECL(shkgone, (struct monst *));
  1394. E void FDECL(set_residency, (struct monst *,BOOLEAN_P));
  1395. E void FDECL(replshk, (struct monst *,struct monst *));
  1396. E void FDECL(restshk, (struct monst *));
  1397. E int FDECL(inhishop, (struct monst *));
  1398. #ifdef SOUNDS
  1399. E boolean FDECL(tended_shop, (struct mkroom *));
  1400. #endif
  1401. E struct monst *FDECL(shop_keeper, (CHAR_P));
  1402. E void FDECL(delete_contents, (struct obj *));
  1403. E void FDECL(obfree, (struct obj *,struct obj *));
  1404. E int NDECL(dopay);
  1405. E void FDECL(home_shk, (struct monst *,BOOLEAN_P));
  1406. E void FDECL(hot_pursuit, (struct monst *));
  1407. E void FDECL(make_happy_shk, (struct monst *,BOOLEAN_P));
  1408. E void FDECL(make_angry_shk, (struct monst *,XCHAR_P,XCHAR_P));
  1409. E boolean FDECL(paybill, (BOOLEAN_P));
  1410. E void FDECL(u_left_shop, (char *,BOOLEAN_P));
  1411. E void FDECL(u_entered_shop, (char *));
  1412. E void FDECL(pay_for_damage, (const char *));
  1413. E long FDECL(unpaid_cost, (struct obj *));
  1414. E long FDECL(contained_cost, (struct obj *,struct monst *,long,BOOLEAN_P));
  1415. E long FDECL(contained_gold, (struct obj *));
  1416. E void FDECL(picked_container, (struct obj *));
  1417. E void FDECL(addtobill, (struct obj *,BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  1418. E void FDECL(splitbill, (struct obj *,struct obj *));
  1419. E void FDECL(subfrombill, (struct obj *,struct monst *));
  1420. E long FDECL(stolen_value, (struct obj *,XCHAR_P,XCHAR_P,BOOLEAN_P,BOOLEAN_P));
  1421. E void FDECL(sellobj_state, (BOOLEAN_P));
  1422. E void FDECL(sellobj, (struct obj *,XCHAR_P,XCHAR_P));
  1423. E int FDECL(doinvbill, (int));
  1424. E int FDECL(shkcatch, (struct obj *,XCHAR_P,XCHAR_P));
  1425. E void FDECL(add_damage, (XCHAR_P,XCHAR_P,long));
  1426. E char FDECL(repair_damage, (struct monst *,struct damage *));
  1427. E int FDECL(shk_move, (struct monst *));
  1428. E boolean FDECL(is_fshk, (struct monst *));
  1429. E void FDECL(shopdig, (int));
  1430. E char FDECL(inside_shop, (XCHAR_P,XCHAR_P));
  1431. E boolean FDECL(costly_spot, (XCHAR_P,XCHAR_P));
  1432. E struct obj *FDECL(shop_object, (XCHAR_P,XCHAR_P));
  1433. E void FDECL(price_quote, (struct obj *));
  1434. E void FDECL(check_unpaid, (struct obj *));
  1435. E void FDECL(costly_gold, (XCHAR_P,XCHAR_P,long));
  1436. E boolean FDECL(block_door, (XCHAR_P,XCHAR_P));
  1437. E boolean FDECL(block_entry, (XCHAR_P,XCHAR_P));
  1438.  
  1439. /* ### shknam.c ### */
  1440.  
  1441. E void FDECL(stock_room, (int,struct mkroom *));
  1442. E boolean FDECL(saleable, (int,struct obj *));
  1443. E int FDECL(get_shop_item, (int));
  1444.  
  1445. /* ### sit.c ### */
  1446.  
  1447. E void NDECL(take_gold);
  1448. E int NDECL(dosit);
  1449. E void NDECL(rndcurse);
  1450. E void NDECL(attrcurse);
  1451.  
  1452. /* ### sounds.c ### */
  1453.  
  1454. #ifdef SOUNDS
  1455. E void NDECL(dosounds);
  1456. E void FDECL(growl, (struct monst *));
  1457. E void FDECL(yelp, (struct monst *));
  1458. E void FDECL(whimper, (struct monst *));
  1459. #endif
  1460. E int NDECL(dotalk);
  1461.  
  1462. /* ### sp_lev.c ### */
  1463.  
  1464. E boolean FDECL(check_room, (xchar *,xchar *,xchar *,xchar *,BOOLEAN_P));
  1465. E boolean FDECL(create_room, (XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P,
  1466.                   XCHAR_P,XCHAR_P,XCHAR_P,XCHAR_P));
  1467. E void FDECL(create_secret_door, (struct mkroom *,XCHAR_P));
  1468. E boolean FDECL(dig_corridor, (coord,coord,BOOLEAN_P,SCHAR_P,SCHAR_P));
  1469. E void FDECL(fill_room, (struct mkroom *,BOOLEAN_P));
  1470. E boolean FDECL(load_special, (const char *));
  1471.  
  1472. /* ### spell.c ### */
  1473.  
  1474. #ifdef OVERLAY
  1475. E int NDECL(learn);
  1476. #endif
  1477. E int FDECL(study_book, (struct obj *));
  1478. E int NDECL(docast);
  1479. E int FDECL(spelleffects, (int,BOOLEAN_P));
  1480. E void NDECL(losespells);
  1481. E int NDECL(dovspell);
  1482.  
  1483. /* ### steal.c ### */
  1484.  
  1485. #ifdef OVERLAY
  1486. E int NDECL(stealarm);
  1487. #endif
  1488. E long NDECL(somegold);
  1489. E void FDECL(stealgold, (struct monst *));
  1490. E int FDECL(steal, (struct monst *));
  1491. E void FDECL(mpickobj, (struct monst *,struct obj *));
  1492. E void FDECL(stealamulet, (struct monst *));
  1493. E void FDECL(relobj, (struct monst *,int,BOOLEAN_P));
  1494.  
  1495. /* ### timeout.c ### */
  1496.  
  1497. E void NDECL(nh_timeout);
  1498. E void NDECL(hatch_eggs);
  1499. E void NDECL(burn_lamps);
  1500. E void NDECL(do_storms);
  1501.  
  1502.  
  1503. /* ### topten.c ### */
  1504.  
  1505. E void FDECL(topten, (int));
  1506. E void FDECL(prscore, (int,char **));
  1507. E struct obj *FDECL(tt_oname, (struct obj *));
  1508.  
  1509. /* ### track.c ### */
  1510.  
  1511. E void NDECL(initrack);
  1512. E void NDECL(settrack);
  1513. E coord *FDECL(gettrack, (int,int));
  1514.  
  1515. /* ### trap.c ### */
  1516.  
  1517. E boolean FDECL(rust_dmg, (struct obj *,const char *,int,BOOLEAN_P));
  1518. E void FDECL(grease_protect, (struct obj *,const char *,BOOLEAN_P));
  1519. E struct trap *FDECL(maketrap, (int,int,int));
  1520. E boolean NDECL(safe_teleds);
  1521. E void FDECL(fall_through, (BOOLEAN_P));
  1522. E void FDECL(dotrap, (struct trap *));
  1523. E void FDECL(seetrap, (struct trap *));
  1524. E int FDECL(mintrap, (struct monst *));
  1525. E void FDECL(selftouch, (const char *));
  1526. E void NDECL(float_up);
  1527. E void FDECL(fill_pit, (int,int));
  1528. E int NDECL(float_down);
  1529. E void NDECL(tele);
  1530. E void FDECL(teleds, (int,int));
  1531. E int NDECL(dotele);
  1532. E void NDECL(level_tele);
  1533. E void FDECL(water_damage, (struct obj *,BOOLEAN_P));
  1534. E boolean NDECL(drown);
  1535. E void FDECL(drain_en, (int));
  1536. E int NDECL(dountrap);
  1537. E int FDECL(untrap, (BOOLEAN_P));
  1538. E boolean FDECL(chest_trap, (struct obj *,int,BOOLEAN_P));
  1539. E void FDECL(deltrap, (struct trap *));
  1540. E struct trap *FDECL(t_at, (int,int));
  1541. E void FDECL(b_trapped, (const char *));
  1542. E boolean NDECL(unconscious);
  1543. E boolean NDECL(lava_effects);
  1544.  
  1545. /* ### u_init.c ### */
  1546.  
  1547. E void NDECL(u_init);
  1548. E void NDECL(plnamesuffix);
  1549.  
  1550. /* ### uhitm.c ### */
  1551.  
  1552. E struct monst *FDECL(clone_mon, (struct monst *));
  1553. E boolean FDECL(special_case, (struct monst *));
  1554. E schar FDECL(find_roll_to_hit, (struct monst *));
  1555. E boolean FDECL(attack, (struct monst *));
  1556. E boolean FDECL(hmon, (struct monst *,struct obj *,int));
  1557. #ifdef POLYSELF
  1558. E int FDECL(damageum, (struct monst *,struct attack *));
  1559. E void FDECL(missum, (struct monst *,struct attack *));
  1560. #endif
  1561. E int FDECL(passive, (struct monst *,BOOLEAN_P,int,BOOLEAN_P));
  1562. E void FDECL(stumble_onto_mimic, (struct monst *));
  1563.  
  1564. #ifdef UNIX
  1565.  
  1566. /* ### unixmain.c ### */
  1567. # ifdef PORT_HELP
  1568. E void NDECL(port_help);
  1569. # endif
  1570.  
  1571. /* ### unixtty.c ### */
  1572.  
  1573. E void NDECL(gettty);
  1574. E void FDECL(settty, (const char *));
  1575. E void NDECL(setftty);
  1576. E void NDECL(intron);
  1577. E void NDECL(introff);
  1578. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
  1579.  
  1580. /* ### unixunix.c ### */
  1581.  
  1582. E void FDECL(gethdate, (const char *));
  1583. E int FDECL(uptodate, (int));
  1584. E void NDECL(getlock);
  1585. E void FDECL(regularize, (char *));
  1586. # ifdef SHELL
  1587. E int NDECL(dosh);
  1588. # endif /* SHELL */
  1589. # if defined(SHELL) || defined(DEF_PAGER) || defined(DEF_MAILREADER)
  1590. E int FDECL(child, (int));
  1591. # endif
  1592.  
  1593. #endif /* UNIX */
  1594.  
  1595. /* ### vault.c ### */
  1596.  
  1597. E boolean FDECL(grddead, (struct monst *));
  1598. E char FDECL(vault_occupied, (char *));
  1599. E void NDECL(invault);
  1600. E int FDECL(gd_move, (struct monst *));
  1601. E void NDECL(paygd);
  1602. E long NDECL(hidden_gold);
  1603. #ifdef SOUNDS
  1604. E boolean NDECL(gd_sound);
  1605. #endif
  1606.  
  1607. /* ### version.c ### */
  1608.  
  1609. E int NDECL(doversion);
  1610. E int NDECL(doextversion);
  1611. #ifdef MICRO
  1612. E boolean FDECL(comp_times, (long));
  1613. #endif
  1614.  
  1615. /* ### vis_tab.c ### */
  1616.  
  1617. #ifdef VISION_TABLES
  1618. E void NDECL(vis_tab_init);
  1619. #endif
  1620.  
  1621. /* ### vision.c ### */
  1622.  
  1623. E void NDECL(vision_init);
  1624. E int FDECL(does_block, (int,int,struct rm*));
  1625. E void NDECL(vision_reset);
  1626. E void FDECL(vision_recalc, (int));
  1627. E void FDECL(block_point, (int,int));
  1628. E void FDECL(unblock_point, (int,int));
  1629. E boolean FDECL(clear_path, (int,int,int,int));
  1630. E void FDECL(do_clear_area, (int,int,int,
  1631.                  void (*)(int,int,genericptr_t),genericptr_t));
  1632.  
  1633. #ifdef VMS
  1634.  
  1635. /* ### vmsfiles.c ### */
  1636.  
  1637. E int FDECL(vms_link, (const char *,const char *));
  1638. E int FDECL(vms_unlink, (const char *));
  1639. E int FDECL(vms_creat, (const char *,unsigned int));
  1640. E int FDECL(vms_open, (const char *,int,unsigned int));
  1641. E boolean FDECL(same_dir, (const char *,const char *));
  1642. E int FDECL(c__translate, (int));
  1643.  
  1644. /* ### vmsmail.c ### */
  1645.  
  1646. E unsigned long NDECL(init_broadcast_trapping);
  1647. E unsigned long NDECL(enable_broadcast_trapping);
  1648. E unsigned long NDECL(disable_broadcast_trapping);
  1649. # if 0
  1650. E struct mail_info *NDECL(parse_next_broadcast);
  1651. # endif /*0*/
  1652.  
  1653. /* ### vmsmain.c ### */
  1654.  
  1655. E int FDECL(main, (int, char **));
  1656. # ifdef CHDIR
  1657. E void FDECL(chdirx, (char *,BOOLEAN_P));
  1658. # endif /* CHDIR */
  1659.  
  1660. /* ### vmsmisc.c ### */
  1661.  
  1662. E void NDECL(vms_abort);
  1663. E void FDECL(vms_exit, (int));
  1664.  
  1665. /* ### vmstty.c ### */
  1666.  
  1667. E int NDECL(vms_getchar);
  1668. E void NDECL(gettty);
  1669. E void FDECL(settty, (const char *));
  1670. E void FDECL(shuttty, (const char *));
  1671. E void NDECL(setftty);
  1672. E void NDECL(intron);
  1673. E void NDECL(introff);
  1674. E void VDECL(error, (const char *,...)) PRINTF_F(1,2);
  1675.  
  1676. /* ### vmsunix.c ### */
  1677.  
  1678. E void FDECL(gethdate, (const char *));
  1679. E boolean FDECL(uptodate, (int));
  1680. E void NDECL(getlock);
  1681. E void FDECL(regularize, (char *));
  1682. E int NDECL(vms_getuid);
  1683. E char *FDECL(basename, (const char *));
  1684. E boolean FDECL(file_is_stmlf, (int));
  1685. E char *NDECL(verify_termcap);
  1686. # if defined(CHDIR) || defined(SHELL) || defined(SECURE)
  1687. E void NDECL(privoff);
  1688. E void NDECL(privon);
  1689. # endif
  1690. # ifdef SHELL
  1691. E int NDECL(dosh);
  1692. # endif
  1693. # if defined(SHELL) || defined(MAIL)
  1694. E int FDECL(vms_doshell, (const char *,BOOLEAN_P));
  1695. # endif
  1696. # ifdef SUSPEND
  1697. E int NDECL(dosuspend);
  1698. # endif
  1699.  
  1700. #endif /* VMS */
  1701.  
  1702. /* ### weapon.c ### */
  1703.  
  1704. E int FDECL(hitval, (struct obj *,struct permonst *));
  1705. E int FDECL(dmgval, (struct obj *,struct permonst *));
  1706. E void NDECL(set_uasmon);
  1707. E struct obj *FDECL(select_rwep, (struct monst *));
  1708. E struct obj *FDECL(select_hwep, (struct monst *));
  1709. #ifdef MUSE
  1710. E void FDECL(possibly_unwield, (struct monst *));
  1711. E int FDECL(mon_wield_item, (struct monst *));
  1712. E void FDECL(sort_mwep, (struct monst *));
  1713. #endif
  1714. E int NDECL(abon);
  1715. E int NDECL(dbon);
  1716.  
  1717. /* ### were.c ### */
  1718.  
  1719. E void FDECL(were_change, (struct monst *));
  1720. E void FDECL(new_were, (struct monst *));
  1721. E boolean FDECL(were_summon, (struct permonst *,BOOLEAN_P));
  1722. #ifdef POLYSELF
  1723. E void NDECL(you_were);
  1724. #endif /* POLYSELF */
  1725.  
  1726. /* ### wield.c ### */
  1727.  
  1728. E void FDECL(setuwep, (struct obj *));
  1729. E void NDECL(uwepgone);
  1730. E int NDECL(dowield);
  1731. E void FDECL(erode_weapon, (BOOLEAN_P));
  1732. E int FDECL(chwepon, (struct obj *,int));
  1733. E int FDECL(welded, (struct obj *));
  1734. E void FDECL(weldmsg, (struct obj *,BOOLEAN_P));
  1735.  
  1736. /* ### windows.c ### */
  1737.  
  1738. E void FDECL(choose_windows, (const char *));
  1739.  
  1740. /* ### wizard.c ### */
  1741.  
  1742. E void NDECL(amulet);
  1743. E int FDECL(mon_has_amulet, (struct monst *));
  1744. E int FDECL(mon_has_special, (struct monst *));
  1745. E int FDECL(tactics, (struct monst *));
  1746. E void NDECL(aggravate);
  1747. E void NDECL(clonewiz);
  1748. E void FDECL(nasty, (struct monst*));
  1749. E void NDECL(resurrect);
  1750. E void NDECL(intervene);
  1751. E void FDECL(wizdead, (struct monst *));
  1752. E void FDECL(cuss, (struct monst *));
  1753.  
  1754. /* ### worm.c ### */
  1755.  
  1756. E int NDECL(get_wormno);
  1757. E void FDECL(initworm, (struct monst *,int));
  1758. E void FDECL(worm_move, (struct monst *));
  1759. E void FDECL(worm_nomove, (struct monst *));
  1760. E void FDECL(wormgone, (struct monst *));
  1761. E void FDECL(wormhitu, (struct monst *));
  1762. E void FDECL(cutworm, (struct monst *,XCHAR_P,XCHAR_P,struct obj *));
  1763. E void FDECL(see_wsegs, (struct monst *));
  1764. E void FDECL(save_worm, (int,int));
  1765. E void FDECL(rest_worm, (int));
  1766. E void FDECL(place_wsegs, (struct monst *));
  1767. E void FDECL(remove_worm, (struct monst *));
  1768. E void FDECL(place_worm_tail_randomly, (struct monst *,XCHAR_P,XCHAR_P));
  1769. E int FDECL(count_wsegs, (struct monst *));
  1770.  
  1771. /* ### worn.c ### */
  1772.  
  1773. E void FDECL(setworn, (struct obj *,long));
  1774. E void FDECL(setnotworn, (struct obj *));
  1775. E int FDECL(find_mac, (struct monst *));
  1776. E void FDECL(m_dowear, (struct monst *,BOOLEAN_P));
  1777. E struct obj *FDECL(which_armor, (struct monst *,long));
  1778. E void FDECL(mon_break_armor, (struct monst *));
  1779.  
  1780. /* ### write.c ### */
  1781.  
  1782. E int FDECL(dowrite, (struct obj *));
  1783.  
  1784. /* ### zap.c ### */
  1785.  
  1786. #if defined(OVERLAY) || defined(MUSE)
  1787. E int FDECL(bhito, (struct obj *,struct obj *));
  1788. #endif
  1789. E struct monst *FDECL(revive, (struct obj *,BOOLEAN_P));
  1790. E int FDECL(zappable, (struct obj *));
  1791. E void FDECL(zapnodir, (struct obj *));
  1792. E int NDECL(dozap);
  1793. E int FDECL(zapyourself, (struct obj *));
  1794. E void FDECL(cancel_monst, (struct monst *,struct obj *,
  1795.                 BOOLEAN_P,BOOLEAN_P,BOOLEAN_P));
  1796. E void FDECL(weffects, (struct obj *));
  1797. E const char *FDECL(exclam, (int force));
  1798. E void FDECL(hit, (const char *,struct monst *,const char *));
  1799. E void FDECL(miss, (const char *,struct monst *));
  1800. E struct monst *FDECL(bhit, (int,int,int,int,int (*)(MONST_P,OBJ_P),
  1801.                  int (*)(OBJ_P,OBJ_P),struct obj *));
  1802. E struct monst *FDECL(boomhit, (int,int));
  1803. E void FDECL(buzz, (int,int,XCHAR_P,XCHAR_P,int,int));
  1804. E int FDECL(zap_over_floor, (XCHAR_P,XCHAR_P,int,boolean *));
  1805. E void FDECL(rloco, (struct obj *));
  1806. E void FDECL(fracture_rock, (struct obj *));
  1807. E boolean FDECL(break_statue, (struct obj *));
  1808. E void FDECL(destroy_item, (int,int));
  1809. E int FDECL(destroy_mitem, (struct monst *,int,int));
  1810. E int FDECL(resist, (struct monst *,CHAR_P,int,int));
  1811. E void NDECL(makewish);
  1812.  
  1813. #endif /* !MAKEDEFS_C && !LEV_LEX_C */
  1814.  
  1815. #undef E
  1816.  
  1817. #endif /* EXTERN_H */
  1818.